啟用、停用、刪除外掛?阿不就去 WordPress 後台的外掛列表,動動手指頭按下去就好了?
當然不是這樣了,不然我這是來搞笑的嗎?
今天要聊的是三個的 hooks!透過這三個 hook 可以在自己的外掛被啟用、停用或是刪除的這一瞬間,做點事情。
首先第一個是 register_activation_hook() ,官方的介紹是『Set the activation hook for a plugin.』,簡單來說就是設置外掛啟動時的 action hook。我們直接拿官方文件上的範例來看。
function pluginprefix_setup_post_type() {
// 註冊 book 自定義文章類型
register_post_type( 'book', ['public' => 'true'] );
}
add_action( 'init', 'pluginprefix_setup_post_type' );
function pluginprefix_install() {
// 拿剛剛定義的副程式來用
pluginprefix_setup_post_type();
// 註冊文章類型後,更新固定連結的規則
flush_rewrite_rules();
}
//
register_activation_hook( __FILE__, 'pluginprefix_install' );
外掛啟動後,就會新增了一個 book 這個 post type
register_deactivation_hook() ,在我們暫停運行外掛的時候,我們可以透過這個 hook 來清理一些臨時的資料。
inprefix_deactivation() {
// 取消註冊文章類型
unregister_post_type( 'book' );
// 更新固定連結規則
flush_rewrite_rules();
}
register_deactivation_hook( __FILE__, 'pluginprefix_deactivation' );
再回去剛剛的那篇 post ,就會發現 WordPress 提示說『無效的內容類型。』
今天如果我又重啟了這個外掛,會發現 這篇 post 又正常運作囉!
最後就是要來介紹下 register_uninstall_hook() ,在我們刪除外掛的時候會使用到,舉剛剛的例子來說
register_uninstall_hook(__FILE__, 'pluginprefix_function_to_run');
今天我們第一次認識了 WordPress 提供的 hooks,而且還三個!然後在我寫這篇文章的時候,發生一件很討厭的事情,就是我出錯的話就直接 return status code ,讓我不知道怎麼 debug ,所以明天就來聊聊 debug 吧!